package com.titaniume.java;

/**
 * @program: JavaSenior
 * @description:
 *
 * 多线程的创建
 * 方式一： 继承Thread类
 * 1.创建一个Thread的子类
 * 2.重写Thread类的run() ---> 将此线程执行的操作声明在run()中
 * 3.创建Thread类的子类对象
 * 4.通过次对象调用start()
 *
 * 例子： 遍历100以内的所有偶数
 *
 * @author: renfei.huang
 * @create: 2021-09-28 20:20
 */

//1.创建一个Thread的子类
class Mythread extends  Thread{
    @Override
    public void run() {
        for (int i = 0; i < 100 ; i++) {
            if(i % 2 == 0){
                System.out.println(Thread.currentThread().getName()+":"+i);
            }
        }
    }
}



public class ThreadTest {

    public static void main(String[] args) {
        //3.创建Thread类的子类对象
        Mythread t1 = new Mythread();

        //通过对象调用start()方法
        //1.启动此线程开始执行;
        //2.Java虚拟机调用此线程的run方法。
        t1.start();


        //问题一 我们不能通过直接调用run()方法的方式启动线程
//        t1.run();

        //问题二 在启动一个线程变量100以内的偶数 不可还让已经start()的线程执行 会报IllegalThreadStateException
//        t1.start();
        //我们需要重写创建一个线程对象
        Mythread t2 = new Mythread();
        t2.start();

        //如下操作任然实在main线程中执行的
        for (int i = 0; i < 100 ; i++) {
            if(i % 2 == 0){
                System.out.println("***************main:"+Thread.currentThread().getName()+i);
            }
        }
    }

}
